// 什么是模块化
// 模块化是指将一个大的程序拆分成若干个小的程序，每个小的程序完成一个特定的功能，这些小的程序就是模块，模块之间可以相互引用，从而实现复杂的功能。

// 模块化的好处
// 1. 提高代码的可维护性
// 2. 提高代码的可复用性
// 3. 提高代码的可测试性

// 模块化的实现
// 1. CommonJS
// 2. ES6 Module
// 3. AMD
// 4. CMD

// CommonJS
// CommonJS 是 Node.js 的模块化规范，它定义了模块的加载和导出的规则。

// CommonJS的规范
// 1. 每个文件就是一个模块，有自己的作用域。
// 2. 在模块内部，可以使用 require() 函数加载其他模块。
// 3. 在模块内部，可以使用 module.exports 对象导出模块。
// 4. 在模块内部，可以使用 exports 对象导出模块。
// 5. 在模块内部，可以使用 __dirname 和 __filename 获取当前模块的路径和文件名。
// 6. 在模块内部，可以使用 process 对象获取当前进程的信息。

// ES6 Module
// ES6 Module 是 ECMAScript 6 引入的模块化规范，它定义了模块的加载和导出的规则。

// AMD
// AMD 是 Asynchronous Module Definition 的缩写，它是一种异步加载模块的规范，它定义了模块的加载和导出的规则。

// CMD
// CMD 是 Common Module Definition 的缩写，它是一种同步加载模块的规范，它定义了模块的加载和导出的规则。

// node中的模块化
// 1.内置模块（fs path http）2.自定义模块(自己写的) 3.第三方模块（express）

// 模块的加载
// 1.内置模块：直接使用 require() 函数加载，例如 require("fs")。
// 2.自定义模块：使用相对路径或绝对路径加载，例如 require("./module1")。
// 3.第三方模块：使用 npm 安装后，使用 require() 函数加载，例如 require("express")。

// 模块的作用域
// 模块的作用域是指模块内部的变量和函数只能在模块内部使用，不能被其他模块访问。这是为了防止模块之间的变量和函数冲突。

// 包（第三方开发）
// 包是指一组模块的集合，它可以将多个模块打包在一起，方便管理和使用。在 Node.js 中，可以使用 npm 安装和管理包。
